package com.gimi.cloud.jimi.manage.service.prod;

import com.gimi.cloud.jimi.common.enums.ResponseCodeEnum;
import com.gimi.cloud.jimi.common.utils.Page;
import com.gimi.cloud.jimi.dto.base.BaseDTO;
import com.gimi.cloud.jimi.dto.prod.ProdCatModelDTO;
import com.gimi.cloud.jimi.entity.prod.ProdCatModelEntity;

import java.util.List;


/**
 * @auther loongs
 * @date 2017/12/18  16:24
 */
public interface ProdCatModelService {
    /**
     * 获得商品品类模板列表
     * @param prodCatModelDTO
     * @return
     */
     Page<ProdCatModelDTO> getProdCatModelList(ProdCatModelDTO prodCatModelDTO);

    /**
     * 添加商品品类模板
     * @param prodCatModelDTO
     * @return
     */
    ResponseCodeEnum addProdCatModel(ProdCatModelDTO prodCatModelDTO);

    /**
     * 添加或者修改，和品类相连
     * @param catModelDTO
     * @return
     */
    ProdCatModelDTO saveOrUpdate(ProdCatModelDTO catModelDTO);

    public int deleteProdCatModelByCatIdExcludeModelIds(BaseDTO dto, String prodCatdId, List<Long> modelIds);

    public List<ProdCatModelDTO> getProdCatModelByCatId(ProdCatModelDTO dto, String catId);

    /**
     * 转跳到编辑界面
     * @param prodCatModelDTO
     * @return
     */
    ProdCatModelEntity gotoEditProdCatModel(ProdCatModelDTO prodCatModelDTO);

    /**
     * 编辑（修改）商品品类模板
     * @param prodCatModelDTO
     * @return
     */
    ResponseCodeEnum editProdCatModel(ProdCatModelDTO prodCatModelDTO);

    /**
     * 删除商品品类模板，逻辑删除/启用
     * @param prodCatModelDTO
     * @return
     */
    ResponseCodeEnum deleteProdCatModel(ProdCatModelDTO prodCatModelDTO);

    /**
     * 删除商品品类模板
     * @param prodCatModelDTO
     * @return
     */
    ResponseCodeEnum realDeleteProdCatModel(ProdCatModelDTO prodCatModelDTO);

    /**
     * 通过三级品类id查询模板及其属性
     * @param dto
     * @return
     */
    public List<ProdCatModelDTO> queryList(ProdCatModelDTO dto,boolean isPaging);
}
